\subsection{Inputs válidos}

\begin{center}

\begin{longtable}{ lcr } \\\hline\\

%test1
\footnotesize
\begin{minipage}{3in}
\begin{verbatim}
// comentarios ignorados en la salida
void main() {
	// y main vacío.
}

\end{verbatim}
\end{minipage}
&&
\parbox[c]{10em}{\includegraphics[scale=0.5]{./results/t1.png}}


\\\hline\\

%test2
\footnotesize
\begin{minipage}{3in}
\begin{verbatim}
void main () {
	int a;
	int b, c;
}

\end{verbatim}
\end{minipage}
&&
\parbox[c]{10em}{\includegraphics[scale=0.5]{./results/t2.png}}

\\\hline\\

%test3
\footnotesize
\begin{minipage}{3in}
\begin{verbatim}
void main () {
	a = 2;
	if (a == 2) b = 1;
	if (b == 1) {
		c = 1; c = 3;
	}
	while (c > 0) {
		c = c -1 ;
	}
	while (true);
}

\end{verbatim}
\end{minipage}
&&
\parbox[c]{10em}{\includegraphics[scale=0.5]{./results/t3.png}}

\\\hline\\

%test4
\footnotesize
\begin{minipage}{3in}
\begin{verbatim}
// if anidados.
void main() {
	if (true) {
		if (true) {
			a = 2;
		} else {
			a = 3;
		}
	} else {
		a = 4;
	}
}

\end{verbatim}
\end{minipage}
&&
\parbox[c]{10em}{\includegraphics[scale=0.5]{./results/t4.png}}

\\\hline\\

%test5
\footnotesize
\begin{minipage}{3in}
\begin{verbatim}
// un poco de todo
void main() {
	boolean b;
	int a;

	a = 2;
	while (true) {
		while (a > 0) a = a - 1;

		if (a == 0) {
			b = true;
		}
		if (b) b = false;
	}
}

\end{verbatim}
\end{minipage}
&&
\parbox[c]{10em}{\includegraphics[scale=0.5]{./results/t5.png}}

\\\hline\\

%test6
\footnotesize
\begin{minipage}{3in}
\begin{verbatim}
void main(){boolean b;int a;a = 2;
while(true){while(a>0)a=a-1;if(a==0)
{b=true;}if(b)b=false;}}
\end{verbatim}
\end{minipage}
&&
\parbox[c]{10em}{\includegraphics[scale=0.5]{./results/t6.png}}

\\\hline\\

%test7
\footnotesize
\begin{minipage}{3in}
\begin{verbatim}
//dangling else
void main() {
    if(a) if (b) c = 1; else c = 2;
}

\end{verbatim}
\end{minipage}
&&
\parbox[c]{10em}{\includegraphics[scale=0.5]{./results/t7.png}}

\\\hline\\

\end{longtable}

\end{center}

\subsection{Inputs inválidos}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{longtable}{ lr } \\\hline

%%fail1
\footnotesize
\begin{minipage}{2in}
\begin{verbatim}

// declaraciones después de
// sentencias no andan
void main () {
	a = 2;
	int b;
}

\end{verbatim}
\end{minipage}
&
\footnotesize
\begin{minipage}{3.5in}
\begin{verbatim}
Error en línea 4 leyendo: "int"
syntax error, unexpected TYPE, expecting BR_CL
\end{verbatim}
\end{minipage}
\\\hline

%%fail2
\footnotesize
\begin{minipage}{2in}
\begin{verbatim}

// algo antes del main
void a() {
}

void main() {
}

\end{verbatim}
\end{minipage}
&
\footnotesize
\begin{minipage}{3.5in}
\begin{verbatim}
Error en línea 2 leyendo: "a"
syntax error, unexpected ID, expecting MAIN
\end{verbatim}
\end{minipage}
\\\hline

%%fail3
\footnotesize
\begin{minipage}{2in}
\begin{verbatim}

// se quiere declarar
// una variable con nombre
// reconocido por el lexer
// como otro token.
void main() {
	bool if;
}

\end{verbatim}
\end{minipage}
&
\footnotesize
\begin{minipage}{3.5in}
\begin{verbatim}
Error en línea 3 leyendo: "if"
syntax error, unexpected IF, expecting ASSIGN
\end{verbatim}
\end{minipage}
\\\hline

%%fail4
\footnotesize
\begin{minipage}{2in}
\begin{verbatim}

// declaraciones despues
// de un ciclo
void main() {
	int k;
	while(true){
	int l;
	}
}

\end{verbatim}
\end{minipage}
&
\footnotesize
\begin{minipage}{3.5in}
\begin{verbatim}
Error en línea 5 leyendo: "int"
syntax error, unexpected TYPE
\end{verbatim}
\end{minipage}
\\\hline

%%fail5
\footnotesize
\begin{minipage}{2in}
\begin{verbatim}

// declaraciones despues
// de un if
void main() {
	int k;
	if(true){
	int l;
	}
}

\end{verbatim}
\end{minipage}
&
\footnotesize
\begin{minipage}{3.5in}
\begin{verbatim}
Error en línea 5 leyendo: "int"
syntax error, unexpected TYPE
\end{verbatim}
\end{minipage}
\\\hline

%%fail5
\footnotesize
\begin{minipage}{2in}
\begin{verbatim}

// operadores de relacion
// sin sentido
void main() {
	int i =2;
	int j=3;
	if ( j<= = i){
		j=4;
	}
}

\end{verbatim}
\end{minipage}
&
\footnotesize
\begin{minipage}{3.5in}
\begin{verbatim}
Error en línea 3 leyendo: "="
syntax error, unexpected ASSIGN, expecting
SEMICOL or COMMA
\end{verbatim}
\end{minipage}
\\\hline

\end{longtable}

